<?php

namespace Bundle\ModuleBundle;
 
class RenderData
{
    const SINGLE_RENDER_MODE = 0x0;
    const MULTIPLY_RENDER_MODE = 0x1;
    
    /**
     * Массив плагинов
     * @var array
     */
    private $_plugins;
    /**
     * Массив ключей
     * @var array
     */
    private $_keys;

    /**
     * Массив состояний элементов
     * @var array
     */
    private $_hidden;

    /**
     * Режим отображения
     * @var string
     */
    private $_mode;

    public function __construct($plugins, $keys, $hidden)
    {
        $this->_plugins = $plugins;
        $this->_keys = $keys;
        $this->_hidden = $hidden;
    }

    public function getPlugins()
    {
        return $this->_plugins;
    }

    

    /**
     * @param string $name
     * @return \Bundle\ModuleBundle\Interfaces\PluginInterface
     */
    public function getPlugin($name)
    {
        if(\array_key_exists($name, $this->_plugins))
        {
            return $this->_plugins[$name];
        }

        throw new \Exception("Plugin with name `$name` not found!");
    }

    /**
     * @return array
     */
    public function getKeys()
    {
        return $this->_keys;
    }

    public function isHidden($key)
    {
        if(\array_key_exists($key, $this->_hidden) && $this->_hidden[$key])
        {
            return true;
        }
        return false;
    }
}
